home *** CD-ROM | disk | FTP | other *** search
- #include <exec/types.h>
- #include "exec/memory.h"
- #include <libraries/dos.h>
- #include <libraries/dosextens.h>
- #include <libraries/filehandler.h>
- #include <time.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include "dh1:source/doors/romconf/doorheader.h"
-
- #define SM sendmessage
- #define sm sendmessage
- #define hk hotkey
- #define pm prompt
- #define gu getuserstring
- #define pu putuserstring
-
- int Ok, NO, REN, DEL, CAN, COP, CONLY;
- int EN, CD, SR, FI, A, CHD, RZ, DZ;
- int f, i, j, l, q, r, w, z, p;
-
- extern struct FileLock *Lock(), *ParentDir(), *CurrentDir();
- extern struct DosLibrary *DOSBase;
-
- char filename[20][100];
- char filenum[15];
- char node[3];
- char CDIR[200];
- char line[200];
- char image[200];
- char password[200];
- char DELpassword[200];
- char RENpassword[200];
- char name[200];
- char CLI[200];
- char CLI2[200];
- char CMD[200];
- char CMD2[200];
- char EXP[200];
- char UEXP[200];
- char DIR[200];
- char ROOT[200];
- char PATH[200];
- char DIRA[200];
- char DIRB[200];
- char ROOTB[200];
- char PATHB[200];
- char wrd[200];
- char left[200];
- char right[200];
- char TempDir[200];
- char codea[120];
- char codeb[120];
- char codec[120];
- char coded[120];
- char codee[120];
- char codef[120];
- char codeg[120];
-
- FILE *fi;
-
- void sr(char *str);
- void Check_Files();
- void Password_Check();
- void Name_Check();
- void Init_Directory();
- void Main_Sub();
- void Parse_Arg(char *str);
- void Upper(char *str);
- void ShutDown();
- void end();
- void LastCommand();
- void Get_Dir(char *Directory);
- void LastPos(char *c,char *s);
- void Word(char *str,int n);
- void Words(char *str);
- void NOT_Check();
- void Left(char *str,int n);
- void Right(char *str,int n);
- void DEL_REN_Password_Check();
- void Show();
- void CurrentDIR();
- void Dir_Check(char *Path);
- void File_Check(char *Path);
- void Change_Dir();
- void Intro();
- void Get_Files();
- void List_Files();
- void Download_Files();
- void Check_File();
- void Get_Code();
- void Check_Version();
- STRPTR BstrOut(BSTR *bstr);
- int FindAssign(char *Path);
-
- main(int argc,char *argv[])
- {
-
- if(argc!=2)
- {
- printf("SHELL v3.0 Written By: /X\altese Falcon \n");
- printf("This is an AmiExpress 2.1+ interface.\n");
- printf("\n\n");
- exit(0);
- }
-
- Register(argv[1][0]-'0'); /* register with express */
-
- Get_Code();
- Check_Files();
- Intro();
- //Check_Version();
- Password_Check();
- Name_Check();
- Init_Directory();
- Main_Sub();
- ShutDown();
- end();
- }
-
- void Check_Version()
- {
- gu(image,EXPRESS_VERSION);
- Right(image,3);
- i=atoi(right);
- if(i<2)
- {
- sm("",1);
- sm(" AmiExpress Version 2.0+ Required For This Shell",1);
- sm("",1);
- ShutDown();
- end();
- }
- }
-
- void Check_Files()
- {
- struct FileLock *testlock;
- fi=fopen("DOORS:SHELL/SHELL-ENV","r");
- if(fi==0)
- {
- sm("",1);
- sm("SHELL-ENV Required To Use Shell v3.0",1);
- sm("",1);
- ShutDown();
- end();
- }
- else
- {
- fgets(password,200,fi);
- sr(password);
- fgets(DELpassword,200,fi);
- sr(DELpassword);
- fgets(RENpassword,200,fi);
- sr(RENpassword);
- fclose(fi);
- }
-
- testlock=Lock("DOORS:SHELL/SHELL-NOT",ACCESS_READ);
- if(testlock==0)
- {
- sm("",1);
- sm("SHELL-NOT Required To Use Shell v3.0",1);
- sm("",1);
- ShutDown();
- end();
- }
- else UnLock(testlock);
-
- testlock=Lock("DOORS:SHELL/SHELL-NAMES",ACCESS_READ);
- if(testlock==0)
- {
- sm("",1);
- sm("SHELL-NAMES Required To Use Shell v3.0",1);
- sm("",1);
- ShutDown();
- end();
- }
- else UnLock(testlock);
-
- testlock=Lock("DOORS:SHELL/SHELL-CAN",ACCESS_READ);
- if(testlock==0)
- {
- sm("",1);
- sm("SHELL-CAN Required To Use Shell v3.0",1);
- sm("",1);
- ShutDown();
- end();
- }
- else UnLock(testlock);
-
- testlock=Lock("DOORS:SHELL/SHELL-COP_NOT",ACCESS_READ);
- if(testlock==0)
- {
- sm("",1);
- sm("SHELL-COP_NOT Required To Use Shell v3.0",1);
- sm("",1);
- ShutDown();
- end();
- }
- else UnLock(testlock);
-
- testlock=Lock("DOORS:SHELL/SHELL-DEL_NOT",ACCESS_READ);
- if(testlock==0)
- {
- sm("",1);
- sm("SHELL-DEL_NOT Required To Use Shell v3.0",1);
- sm("",1);
- ShutDown();
- end();
- }
- else UnLock(testlock);
-
- testlock=Lock("DOORS:SHELL/SHELL-REN_NOT",ACCESS_READ);
- if(testlock==0)
- {
- sm("",1);
- sm("SHELL-REN_NOT Required To Use Shell v3.0",1);
- sm("",1);
- ShutDown();
- end();
- }
- else UnLock(testlock);
-
- return;
- }
-
- void LastPos(char *c,char *s)
- {
- j=0;
- r=strlen(s);
- while(r > -1)
- {
- if(!strncmp(s+r,c,strlen(c)))
- {
- j=r+1;
- break;
- }
- else r--;
- }
-
- }
-
- void Password_Check()
- {
- sm("",1);
- sm("Password: ",0);
- strcpy(image,"");
- i=0;
- while(i<69)
- {
- hk("",&image[i]);
- if(image[i]==13) break;
- if(image[i]!=8) {sm("X",0); i++;}
- else
- {
- if(i!=0) {sm(" ",0); i--;}
- }
- }
- image[i]='\0';
- sm("",1);
- if(strcmp(password,image)!=0)
- {
- sm("",1);
- sm("Password FAILED !!!",1);
- sm("",1);
- ShutDown();
- end();
- }
- return;
- }
-
- void Name_Check()
- {
- gu(name,DT_NAME); /* Do Search Effect */
- sm("",1);
- sm("Searching for ",0);
- sm(name,0);
- sm(" ",0);
- z = 6;
- while(z != 0)
- {
- Delay(40);
- sm(". ",0);
- z --;
- } /* End Search Effect */
- Ok=0;
- fi=fopen("DOORS:SHELL/SHELL-NAMES","r");
- while(fgets(image,200,fi)!=NULL)
- {
- sr(image);
- if(strcmp(name,image)==0) Ok=1;
- }
- fclose(fi);
-
- if(Ok==1)
- {
- sm("ACCESS Granted",1);
- }
- else
- {
- sm("ACCESS DENIED !!!",1);
- sm("",1);
- ShutDown();
- end();
- }
- return;
- }
-
- void sr(char *str)
- {
- r=0; j=0;
- while(r < strlen(str) && str[r]==' ') {r++;}
- while(r < strlen(str))
- {
- str[j] = str[r];
- r++; j++;
- }
- str[j] = '\0';
-
- r = strlen(str) - 1;
- while(r > -1)
- {
- if(*(str + r) <= 32) *(str + r) = '\0'; else break;
- r--;
- }
- }
-
- void Upper(char *str)
- {
- l=strlen(str);
- for(i=0; i<l; i++) if(str[i]>='a' && str[i]<='z') str[i]=str[i]-32;
- str[i]='\0';
- return;
- }
-
- void Init_Directory()
- {
- Get_Dir("BBS:");
- }
-
- void Parse_Arg(char *str)
- {
- i=0;j=0;w=0;
- while(i<strlen(str))
- {
- if(str[i]==' ') j++;
- i++;
- }
- j++;
- if(j==1) { strcpy(CMD,str); strcpy(EXP,""); return; }
- i=0;j=1;w=0;
- while(j==1)
- {
- if(str[i]==' ') { CMD[i]='\0'; j++;}
- else CMD[i]=str[i];
- i++;
- }
- while(i<strlen(str))
- {
- EXP[w]=str[i];
- w++; i++;
- }
- EXP[w]='\0';
- }
-
- void LastCommand()
- {
- pu("",RETURNCOMMAND);
- return;
- }
-
- void end()
- {
- exit(0);
- }
-
- void Get_Dir(char *Directory)
- {
- struct FileLock *oldlock;
- j=strlen(Directory); if(j>29) Directory[30]='\0';
- oldlock = Lock(Directory,ACCESS_READ);
- if(oldlock) followpath(oldlock,0);
- else
- {
- sm("",1);
- sm("Directory Does NOT EXIST!",1);
- }
- return;
- }
-
- int followpath(lock,slash)
- struct FileLock *lock;
- int slash;
- {
- struct FileInfoBlock *fib;
- struct FileLock *newlock;
- int success;
-
- if(!lock) return(0);
- strcpy(ROOT,""); strcpy(PATH,"");
- strcpy(ROOTB,""); strcpy(PATHB,"");
- fib=(struct FileInfoBlock *)AllocMem(sizeof(struct FileInfoBlock),MEMF_CLEAR);
- newlock=ParentDir(lock);
- followpath(newlock,1);
-
- success = Examine(lock,fib);
- if(success) sprintf(DIR,"%ls",&fib->fib_FileName[0]);
- if(newlock==0)
- {
- sprintf(ROOT,"%s:",DIR);
- sprintf(ROOTB,"%s:",DIR);
- }
- else
- {
- if(slash)
- {
- sprintf(PATH,"%s%s/",PATH,DIR);
- sprintf(PATHB,"%s%s/",PATHB,DIR);
- }
- else
- {
- sprintf(PATH,"%s%s",PATH,DIR);
- sprintf(PATHB,"%s%s",PATHB,DIR);
- }
- UnLock(lock);
- }
- if(fib) FreeMem(fib,sizeof(struct FileInfoBlock));
- sprintf(DIR,"%s%s",ROOT,PATH);
- sprintf(DIRB,"%s%s",ROOTB,PATHB);
- return(0);
- }
-
- void Dir_Check(char *Path)
- {
- struct FileInfoBlock *fib;
- struct FileLock *lock;
- int success;
- CD=0;Ok=0;
-
- j=strlen(Path); if(j>29) Path[30]='\0';
- strcpy(image,Path);
- LastPos(":",Path);
- if(j!=0)
- {
- image[j-1]='\0';
- Upper(image);
- if(!FindAssign(image)) {Ok=1; return;}
- }
- fib=(struct FileInfoBlock *)AllocMem(sizeof(struct FileInfoBlock),MEMF_CLEAR);
- lock = Lock(Path,ACCESS_READ);
- if(lock)
- {
- success = Examine(lock,fib);
- if(success) {if(fib->fib_DirEntryType > 0) CD=1;}
- UnLock(lock);
- }
- if(fib) FreeMem(fib,sizeof(struct FileInfoBlock));
- return;
- }
-
- void File_Check(char *Path)
- {
- struct FileInfoBlock *fib;
- struct FileLock *lock;
- int success;
- FI=0;
-
- j=strlen(Path); if(j>29) Path[30]='\0';
- strcpy(image,Path);
- LastPos(":",Path);
- if(j!=0)
- {
- image[j-1]='\0';
- Upper(image);
- if(!FindAssign(image)) return;
- }
- fib=(struct FileInfoBlock *)AllocMem(sizeof(struct FileInfoBlock),MEMF_CLEAR);
- lock = Lock(Path,ACCESS_READ);
- if(lock)
- {
- success = Examine(lock,fib);
- if(success) {if(fib->fib_DirEntryType < 0) FI=1;}
- UnLock(lock);
- }
- if(fib) FreeMem(fib,sizeof(struct FileInfoBlock));
- return;
- }
-
-
- void Script_Check(char *Path)
- {
- struct FileInfoBlock *fib;
- struct FileLock *lock;
- int success;
- SR=0;
-
- fib=(struct FileInfoBlock *)AllocMem(sizeof(struct FileInfoBlock),MEMF_CLEAR);
-
- LastPos("/",Path);
- if(j==0) LastPos(":",Path);
- if(j==0)
- {
- Right(DIRB,1);
- if(strcmp(right,":")==0) sprintf(line,"%s%s",DIRB,Path);
- else sprintf(line,"%s/%s",DIRB,Path);
- }
- else strcpy(line,Path);
-
- j=strlen(Path); if(j>29) Path[30]='\0';
- j=strlen(line); if(j>29) line[30]='\0';
- strcpy(image,Path);
- LastPos(":",Path);
- if(j!=0)
- {
- image[j-1]='\0';
- Upper(image);
- if(!FindAssign(image)) return;
- }
- lock = Lock(line,ACCESS_READ);
- if(lock)
- {
- success = Examine(lock,fib);
- if(success)
- {
- if(fib->fib_DirEntryType < 0)
- {
- if(fib->fib_Protection & FIBF_SCRIPT) SR=1;
- }
- }
- UnLock(lock);
- }
- if(fib) FreeMem(fib,sizeof(struct FileInfoBlock));
- return;
- }
-
- void Show()
- {
- fi=fopen("RAM:SHELL","r");
- if(fi!=0)
- {
- while(fgets(image,200,fi)!=NULL)
- {
- sr(image);
- sm(image,1);
- }
- fclose(fi);
- }
- }
-
- void Word(char *str, int n)
- {
- Words(str);
- if(w<n) {strcpy(wrd,""); return;}
- r=0;j=1;q=0;
- while(j!=n)
- {
- if(str[r]==' ') j++;
- r++;
- }
- while(r<strlen(str) && str[r]!=' ')
- {
- wrd[q]=str[r];
- q++; r++;
- }
- wrd[q]='\0';
- return;
- }
-
- void Words(char *str)
- {
- r=0; w=0;
- while(r < strlen(str))
- {
- if(str[r]==' ') w++;
- r++;
- }
- w++;
- return;
- }
-
- void Left(char *str,int n)
- {
- l=strlen(str);
- if(n<l) l=n;
- for(r=0; r<l; r++)
- {
- left[r]=str[r];
- }
- left[r]='\0';
- return;
- }
-
- void Right(char *str,int n)
- {
- q=0;
- l=strlen(str);
- if(n>l) n=0;
- else n=l-n;
- for(r=n; r<l; r++)
- {
- right[q]=str[r];
- q++;
- }
- right[q]='\0';
- return;
- }
-
- void NOT_Check()
- {
- fi=fopen("DOORS:SHELL/SHELL-NOT","r");
- if(fi==0)
- {
- sm("",1);
- sm("SHELL-NOT Required To Use Shell v3.0",1);
- sm("",1);
- ShutDown();
- end();
- }
- while(fgets(image,200,fi)!=NULL)
- {
- sr(image); Upper(image);
-
- if(strcmp(image,"#?")==0)
- {
- LastPos(image,CLI);
- if(j!=0) NO=1;
- }
- Words(UEXP); EN=w;
- for(i=1; i<=EN; i++)
- {
- Word(UEXP,i);
- l=strlen(wrd);
- LastPos("/",wrd);
- if(j==0) LastPos(":",wrd);
- if(j!=0) Right(wrd,l-j);
- else strcpy(right,wrd);
- if(strcmp(image,right)==0) NO=1;
- }
- l=strlen(CMD);
- LastPos("/",CMD);
- if(j==0) LastPos(":",CMD);
- if(j!=0) Right(CMD,l-j);
- else strcpy(right,CMD);
- if(strcmp(image,right)==0) NO=1;
- }
- fclose(fi);
- return;
- }
-
- void CAN_Check()
- {
- fi=fopen("DOORS:SHELL/SHELL-CAN","r");
- if(fi==0)
- {
- sm("",1);
- sm("SHELL-CAN Required To Use Shell v3.0",1);
- sm("",1);
- ShutDown();
- end();
- }
- while(fgets(image,200,fi)!=NULL)
- {
- sr(image); Upper(image);
- l=strlen(image);
- LastPos("/",image);
- if(j!=0)
- {
- l=strlen(image); l=l-j;
- Right(image,l);
- j=j-1;
- Left(image,j);
- }
- else
- {
- LastPos(":",image);
- if(j!=0)
- {
- Left(image,j);
- l=strlen(image); l=l-j;
- Right(image,l);
- }
- }
- strcpy(DIRA,DIRB); Upper(DIRA);
- if(strcmp(left,"RAM:")==0 && strcmp(DIRA,"RAM DISK:")==0) strcpy(left,"Ram Disk:");
- if(strcmp(left,"RAM DISK:")==0 && strcmp(DIRA,"RAM:")==0) strcpy(left,"Ram:");
- if(strcmp(right,CMD)==0 && strcmp(left,DIRB)==0) CAN=1;
- Left(image,2);
- if(strcmp(left,"C:")==0)
- {
- if(strcmp(right,CMD)==0)
- {
- CAN=1;
- CONLY=1;
- }
- }
- if(strcmp(image,CMD)==0) CAN=1;
- }
- fclose(fi);
- return;
- }
-
- void DEL_REN_Password_Check()
- {
- sm("",1);
- sm("Password: ",0);
- strcpy(image,"");
- i=0;
- while(i<69)
- {
- hk("",&image[i]);
- if(image[i]==13) break;
- if(image[i]!=8) {sm("X",0); i++;}
- else
- {
- if(i!=0) {sm(" ",0); i--;}
- }
- }
- image[i]='\0';
- sm("",1);
- if(strcmp(password,image)==0) Change_Dir();
- else sm("Password Failed",1);
- return;
- }
-
- void Change_Dir()
- {
- struct FileInfoBlock *fib;
- struct FileLock *lock, *oldlock, *Oldlock;
- int success;
-
- fib=(struct FileInfoBlock *)AllocMem(sizeof(struct FileInfoBlock),MEMF_CLEAR);
- lock = Lock(DIRB,ACCESS_READ);
- if(lock)
- {
- oldlock = CurrentDir(lock);
- sprintf(line,"%s >RAM:SHELL",CLI);
- success = Execute(line,0,0);
- Oldlock = CurrentDir(oldlock);
- UnLock(lock);
- }
- if(fib) FreeMem(fib,sizeof(struct FileInfoBlock));
- }
-
- void Get_Files()
- {
- f=0;
- strcpy(filename[f],".");
- while(strcmp(filename[f],"")!=0 && f<=19)
- {
- f++;
- sprintf(filenum,"FileSpec(%d): ",f);
- sm("",1);
- pm(filenum,line,30);
- strcpy(filename[f],line);
- Check_File();
- }
- if(f==20) sm("Maximum Batch Files Reached!",1);
- }
-
- void Check_File()
- {
- Upper(filename[f]);
- LastPos("/",filename[f]);
- if(j==0) LastPos(":",filename[f]);
- if(j!=0)
- {
- r=0;
- for(i=j; i<=l; i++)
- {
- line[r]=filename[f][i];
- r++;
- }
- line[r]='\0';
- }
- else strcpy(line,filename[f]);
-
- fi=fopen("DOORS:SHELL/SHELL-DZ_NOT","r");
- if(fi!=0)
- {
- while(fgets(image,200,fi)!=NULL)
- {
- sr(image); Upper(image);
- if(strcmp(image,"#?")==0)
- {
- LastPos(image,line);
- if(j!=0)
- {
- fclose(fi);
- f--;
- return;
- }
- }
-
- if(strcmp(image,line)==0)
- {
- fclose(fi);
- f--;
- return;
- }
- }
- fclose(fi);
- if(strcmp(filename[f],"")==0) return;
- fi=fopen(filename[f],"r");
- if(fi==0)
- {
- sm("",1);
- sm("File Does NOT Exist!",1);
- f--;
- return;
- }
- fclose(fi);
-
- Ok=0;
- for(i=1; i<f; i++)
- {
- if(strcmp(filename[f],filename[i])==0)
- {
- sm("",1);
- sm("File Already Flagged For Downloading!",1);
- i=f; Ok=1;
- }
- }
- if(Ok==1) f--;
- return;
- }
- }
-
- void List_Files()
- {
- if(strcmp(filename[1],"")!=0)
- {
- if(strcmp(filename[f],"")==0) f--;
- sm("",1);
- sm("Preparing...",0);
- sm("",0);
- sm(filename[1],0);
- sm("",1);
- for(i=2; i<=f; i++)
- {
- sm(" ",0);
- sm(filename[i],0);
- sm("",1);
- }
- sm("",1);
- }
- }
-
- void Download_Files()
- {
- if(strcmp(filename[1],"")!=0)
- {
- sm("Press ENTER to Begin Zmodem Download: ",0);
- pm("",image,2);
- for(i=1; i<=f; i++)
- {
- sm("",1);
- sprintf(line,"Sending file %s",filename[i]);
- sm(line,1);
- pu(filename[i],ZMODEMSEND);
- }
- }
- }
-
- void Get_Code()
- {
- codea[0]=36^4;
- codea[1]=39^7;
- codea[2]=42^10;
- codea[3]=45^13;
- codea[4]=48^16;
- codea[5]=51^19;
- codea[6]=54^22;
- codea[7]=57^25;
- codea[8]=60^28;
- codea[9]=4^31;
- codea[10]=121^34;
- codea[11]=22^37;
- codea[12]=25^40;
- codea[13]=70^43;
- codea[14]=125^46;
- codea[15]=89^49;
- codea[16]=81^52;
- codea[17]=91^55;
- codea[18]=86^58;
- codea[19]=29^61;
- codea[20]=54^64;
- codea[21]=112^67;
- codea[22]=104^70;
- codea[23]=121^73;
- codea[24]=45^76;
- codea[25]=84^79;
- codea[26]=9^82;
- codea[27]=101^85;
- codea[28]=53^88;
- codea[29]=123^91;
- codea[30]=28^94;
- codea[31]=24^97;
- codea[32]=94^100;
- codea[33]=71^103;
- codea[34]=113^106;
- codea[35]=54^109;
- codea[36]=67^112;
- codea[37]=69^115;
- codea[38]=77^118;
- codea[39]=77^121;
- codea[40]=72^124;
- codea[41]=18^127;
- codea[42]=-83^130;
- codea[43]=-35^133;
- codea[44]=-44^136;
- codea[45]=-112^139;
- codea[46]=-43^142;
- codea[47]=-91^145;
- codea[48]=-92^148;
- codea[49]=-6^151;
- codea[50]=-5^154;
- codea[51]=-15^157;
- codea[52]=-44^160;
- codea[53]=-58^163;
- codea[54]=-43^166;
- codea[55]=-52^169;
- codea[56]=-116^172;
- codea[57]=-23^175;
- codea[58]=-45^178;
- codea[59]=-39^181;
- codea[60]=-37^184;
- codea[61]=-44^187;
- codea[62]=-48^190;
- codea[63]=-31^193;
- codea[64]=-28^196;
- codea[65]=-36^199;
- codea[66]=-111^202;
- codea[67]=-2^205;
- codea[68]=-30^208;
- codea[69]=-66^211;
- codea[70]=125^214;
- codea[71]=114^217;
- codea[72]=119^220;
- codea[73]=-1^223;
- codea[74]=-7^226;
- codea[75]=-66^229;
- codea[76]=-39^232;
- codea[77]=-48^235;
- codea[78]=-35^238;
- codea[79]=-58^241;
- codea[80]=-103^244;
- codea[81]=-40^247;
- codea[82]=-94^250;
- codea[83]=-35^253;
- codea[84]=27^256;
- codea[85]=88^259;
- codea[86]=54^262;
- codea[87]=50^265;
- codea[88]=63^268;
- codea[89]=60^271;
- codea[90]=127^274;
- codea[91]=81^277;
- codea[92]=125^280;
- codea[93]=109^283;
- codea[94]=123^286;
- codea[95]=77^289;
- codea[96]=75^292;
- codea[97]=87^295;
- codea[98]=71^298;
- codea[99]=72^301;
- codea[100]=94^304;
- codea[101]=71^307;
- codea[102]=22^310;
- codea[103]=109^313;
- codea[104]=89^316;
- codea[105]=94^319;
- codea[106]=47^322;
- codea[107]=101^325;
- codea[108]=83^328;
- codea[109]=16^331;
- codea[110]=125^334;
- codea[111]=99^337;
- codea[112]=57^340;
- codea[113]=-20^343;
- codea[114]=-31^346;
-
- codeb[0]=40^8;
- codeb[1]=47^15;
- codeb[2]=54^22;
- codeb[3]=61^29;
- codeb[4]=4^36;
- codeb[5]=11^43;
- codeb[6]=18^50;
- codeb[7]=25^57;
- codeb[8]=96^64;
- codeb[9]=92^71;
- codeb[10]=21^78;
- codeb[11]=102^85;
- codeb[12]=105^92;
- codeb[13]=14^99;
- codeb[14]=20^106;
- codeb[15]=15^113;
- codeb[16]=6^120;
- codeb[17]=1^127;
- codeb[18]=-8^134;
- codeb[19]=-13^141;
- codeb[20]=-22^148;
- codeb[21]=-27^155;
- codeb[22]=-36^162;
- codeb[23]=-41^169;
- codeb[24]=-50^176;
- codeb[25]=-55^183;
- codeb[26]=-64^190;
- codeb[27]=-69^197;
- codeb[28]=-78^204;
- codeb[29]=-83^211;
- codeb[30]=-92^218;
- codeb[31]=-97^225;
- codeb[32]=-106^232;
- codeb[33]=-111^239;
- codeb[34]=-120^246;
- codeb[35]=-125^253;
- codeb[36]=122^260;
- codeb[37]=117^267;
- codeb[38]=108^274;
- codeb[39]=103^281;
- codeb[40]=94^288;
- codeb[41]=89^295;
- codeb[42]=80^302;
- codeb[43]=75^309;
- codeb[44]=66^316;
- codeb[45]=61^323;
- codeb[46]=52^330;
- codeb[47]=47^337;
- codeb[48]=38^344;
- codeb[49]=33^351;
- codeb[50]=24^358;
- codeb[51]=19^365;
- codeb[52]=10^372;
- codeb[53]=5^379;
- codeb[54]=-4^386;
- codeb[55]=-9^393;
- codeb[56]=-18^400;
- codeb[57]=-23^407;
- codeb[58]=-32^414;
- codeb[59]=-37^421;
- codeb[60]=-46^428;
- codeb[61]=-51^435;
- codeb[62]=-60^442;
- codeb[63]=-65^449;
- codeb[64]=-74^456;
- codeb[65]=-79^463;
- codeb[66]=-88^470;
- codeb[67]=-93^477;
- codeb[68]=-102^484;
- codeb[69]=-107^491;
- codeb[70]=-116^498;
- codeb[71]=-121^505;
- codeb[72]=126^512;
- codeb[73]=121^519;
-
- codec[0]=30^5;
- codec[1]=82^9;
- codec[2]=76^13;
-
- coded[0]=17^10;
- coded[1]=72^19;
- coded[2]=93^28;
- coded[3]=62^37;
- coded[4]=117^46;
- coded[5]=116^55;
- coded[6]=91^64;
- coded[7]=18^73;
- coded[8]=17^82;
- coded[9]=64^91;
- coded[10]=63^100;
- coded[11]=46^109;
- coded[12]=109^118;
- coded[13]=36^127;
- coded[14]=-53^136;
- coded[15]=-118^145;
- coded[16]=-63^154;
- coded[17]=-32^163;
- coded[18]=-73^172;
- coded[19]=-18^181;
- coded[20]=-3^190;
- coded[21]=-36^199;
- coded[22]=-117^208;
- coded[23]=-102^217;
- coded[24]=-7^226;
- coded[25]=-80^235;
- coded[26]=-73^244;
- coded[27]=-26^253;
- coded[28]=93^262;
- coded[29]=76^271;
- coded[30]=3^280;
- coded[31]=122^289;
- coded[32]=105^298;
- coded[33]=40^307;
- coded[34]=103^316;
- coded[35]=6^325;
- coded[36]=85^334;
- coded[37]=12^343;
- coded[38]=35^352;
- coded[39]=114^361;
- coded[40]=41^370;
- coded[41]=56^379;
- coded[42]=-97^388;
- coded[43]=-42^397;
- coded[44]=-43^406;
- coded[45]=-124^415;
- coded[46]=-13^424;
- coded[47]=-14^433;
- coded[48]=-95^442;
- coded[49]=-104^451;
- coded[50]=-113^460;
- coded[51]=-50^469;
- coded[52]=-123^478;
- coded[53]=-92^487;
- coded[54]=-21^496;
- coded[55]=-94^505;
- coded[56]=65^514;
- coded[57]=16^523;
- coded[58]=79^532;
- coded[59]=94^541;
- coded[60]=61^550;
- coded[61]=116^559;
- coded[62]=123^568;
- coded[63]=90^577;
- coded[64]=17^586;
- coded[65]=16^595;
- coded[66]=71^604;
- coded[67]=62^613;
- coded[68]=45^622;
- coded[69]=108^631;
- coded[70]=-37^640;
- coded[71]=-54^649;
- coded[72]=-119^658;
- coded[73]=-64^667;
- coded[74]=-25^676;
- coded[75]=-74^685;
- coded[76]=-19^694;
- coded[77]=-4^703;
- coded[78]=-45^712;
- coded[79]=-118^721;
- coded[80]=-18^730;
- coded[81]=-41^739;
- coded[82]=-127^748;
- coded[83]=-43^757;
- coded[84]=-27^766;
- coded[85]=92^775;
- coded[86]=36^784;
- coded[87]=41^793;
- coded[88]=79^802;
- coded[89]=48^811;
- coded[90]=111^820;
- coded[91]=126^829;
- coded[92]=93^838;
- coded[93]=20^847;
- coded[94]=108^856;
- coded[95]=85^865;
- coded[96]=7^874;
- coded[97]=83^883;
- coded[98]=103^892;
- coded[99]=-34^901;
- coded[100]=-70^910;
- coded[101]=-89^919;
- coded[102]=-51^928;
-
- codee[0]=28^7;
- codee[1]=86^13;
- codee[2]=82^19;
- codee[3]=2^25;
- codee[4]=68^31;
- codee[5]=100^37;
- codee[6]=48^43;
- codee[7]=106^49;
- codee[8]=116^55;
- codee[9]=38^61;
- codee[10]=24^67;
- codee[11]=10^73;
- codee[12]=84^79;
- codee[13]=14^85;
- codee[14]=24^91;
- codee[15]=122^97;
- codee[16]=60^103;
- codee[17]=46^109;
- codee[18]=104^115;
- codee[19]=34^121;
- codee[20]=60^127;
- codee[21]=-98^133;
- codee[22]=-48^139;
- codee[23]=-46^145;
- codee[24]=-116^151;
- codee[25]=-58^157;
- codee[26]=-32^163;
- codee[27]=-78^169;
- codee[28]=-12^175;
- codee[29]=-10^181;
- codee[30]=-96^187;
- codee[31]=-102^193;
- codee[32]=-124^199;
- codee[33]=-42^205;
- codee[34]=-120^211;
- codee[35]=-102^217;
- codee[36]=-60^223;
- codee[37]=-66^229;
- codee[38]=-88^235;
- codee[39]=-22^241;
- codee[40]=-84^247;
- codee[41]=-66^253;
- codee[42]=24^259;
- codee[43]=82^265;
- codee[44]=76^271;
- codee[45]=14^277;
- codee[46]=64^283;
- codee[47]=98^289;
- codee[48]=60^295;
- codee[49]=118^301;
- codee[50]=112^307;
- codee[51]=34^313;
- codee[52]=100^319;
- codee[53]=6^325;
- codee[54]=80^331;
- codee[55]=10^337;
- codee[56]=20^343;
- codee[57]=70^349;
- codee[58]=56^355;
- codee[59]=42^361;
- codee[60]=116^367;
- codee[61]=46^373;
- codee[62]=56^379;
- codee[63]=-102^385;
- codee[64]=-36^391;
- codee[65]=-50^397;
- codee[66]=-120^403;
- codee[67]=-62^409;
- codee[68]=-36^415;
- codee[69]=-66^421;
- codee[70]=-16^427;
- codee[71]=-14^433;
- codee[72]=-84^439;
- codee[73]=-26^445;
- codee[74]=-128^451;
- codee[75]=-46^457;
- codee[76]=-108^463;
- codee[77]=-106^469;
- codee[78]=-64^475;
- codee[79]=-70^481;
- codee[80]=-92^487;
- codee[81]=-10^493;
- codee[82]=-88^499;
- codee[83]=-54^505;
- codee[84]=-55^511;
- codee[85]=104^517;
- codee[86]=87^523;
- codee[87]=10^529;
- codee[88]=76^535;
- codee[89]=41^541;
- codee[90]=19^547;
- codee[91]=68^553;
- codee[92]=52^559;
- codee[93]=110^565;
- codee[94]=120^571;
- codee[95]=90^577;
- codee[96]=28^583;
- codee[97]=126^589;
- codee[98]=101^595;
- codee[99]=52^601;
- codee[100]=112^607;
- codee[101]=126^613;
- codee[102]=48^619;
- codee[103]=69^625;
- codee[104]=71^631;
- codee[105]=16^637;
-
- codef[0]=24^3;
- codef[1]=94^5;
- codef[2]=70^7;
- codef[3]=18^9;
- codef[4]=80^11;
- codef[5]=78^13;
- codef[6]=20^15;
- codef[7]=74^17;
- codef[8]=80^19;
- codef[9]=14^21;
- codef[10]=76^23;
- codef[11]=90^25;
- codef[12]=0^27;
- codef[13]=70^29;
- codef[14]=92^31;
- codef[15]=58^33;
- codef[16]=120^35;
- codef[17]=102^37;
- codef[18]=60^39;
- codef[19]=114^41;
- codef[20]=104^43;
- codef[21]=54^45;
- codef[22]=116^47;
- codef[23]=114^49;
- codef[24]=40^51;
- codef[25]=110^53;
- codef[26]=116^55;
- codef[27]=34^57;
- codef[28]=96^59;
- codef[29]=126^61;
- codef[30]=36^63;
- codef[31]=26^65;
- codef[32]=0^67;
- codef[33]=94^69;
- codef[34]=28^71;
- codef[35]=10^73;
- codef[36]=80^75;
- codef[37]=22^77;
- codef[38]=12^79;
- codef[39]=74^81;
- codef[40]=8^83;
- codef[41]=22^85;
- codef[42]=76^87;
- codef[43]=2^89;
- codef[44]=24^91;
- codef[45]=70^93;
- codef[46]=4^95;
- codef[47]=34^97;
- codef[48]=120^99;
- codef[49]=62^101;
- codef[50]=36^103;
- codef[51]=114^105;
- codef[52]=48^107;
- codef[53]=46^109;
- codef[54]=116^111;
- codef[55]=42^113;
- codef[56]=48^115;
- codef[57]=110^117;
- codef[58]=44^119;
- codef[59]=58^121;
- codef[60]=96^123;
- codef[61]=38^125;
- codef[62]=60^127;
- codef[63]=-102^129;
- codef[64]=-40^131;
- codef[65]=-58^133;
- codef[66]=-100^135;
- codef[67]=-46^137;
- codef[68]=-56^139;
- codef[69]=-106^141;
- codef[70]=-44^143;
- codef[71]=-46^145;
- codef[72]=-120^147;
- codef[73]=-50^149;
- codef[74]=-44^151;
- codef[75]=-126^153;
- codef[76]=-64^155;
- codef[77]=-34^157;
- codef[78]=-124^159;
- codef[79]=-6^161;
- codef[80]=-112^163;
- codef[81]=-109^165;
- codef[82]=-54^167;
- codef[83]=-119^169;
- codef[84]=-80^171;
- codef[85]=-10^173;
- codef[86]=-101^175;
- codef[87]=-127^177;
- codef[88]=-34^179;
- codef[89]=-82^181;
- codef[90]=-20^183;
- codef[91]=-6^185;
- codef[92]=-96^187;
- codef[93]=-26^189;
- codef[94]=-116^191;
- codef[95]=-9^193;
- codef[96]=-82^195;
- codef[97]=-27^197;
- codef[98]=-36^199;
- codef[99]=-110^201;
- codef[100]=-1^203;
- codef[101]=-3^205;
- codef[102]=-94^207;
-
- codeg[0]=18^9;
- codeg[1]=74^17;
- codeg[2]=90^25;
- codeg[3]=58^33;
- codeg[4]=114^41;
- codeg[5]=114^49;
- codeg[6]=34^57;
- codeg[7]=26^65;
- codeg[8]=10^73;
- codeg[9]=74^81;
- codeg[10]=2^89;
- codeg[11]=34^97;
- codeg[12]=114^105;
- codeg[13]=42^113;
- codeg[14]=58^121;
- codeg[15]=-102^129;
- codeg[16]=-46^137;
- codeg[17]=-46^145;
- codeg[18]=-126^153;
- codeg[19]=-6^161;
- codeg[20]=-22^169;
- codeg[21]=-86^177;
- codeg[22]=-30^185;
- codeg[23]=-126^193;
- codeg[24]=-46^201;
- codeg[25]=-118^209;
- codeg[26]=-102^217;
- codeg[27]=-6^225;
- codeg[28]=-78^233;
- codeg[29]=-78^241;
- codeg[30]=-30^249;
- codeg[31]=90^257;
- codeg[32]=74^265;
- codeg[33]=10^273;
- codeg[34]=66^281;
- codeg[35]=98^289;
- codeg[36]=50^297;
- codeg[37]=106^305;
- codeg[38]=122^313;
- codeg[39]=90^321;
- codeg[40]=18^329;
- codeg[41]=18^337;
- codeg[42]=66^345;
- codeg[43]=58^353;
- codeg[44]=42^361;
- codeg[45]=106^369;
- codeg[46]=34^377;
- codeg[47]=-62^385;
- codeg[48]=-110^393;
- codeg[49]=-54^401;
- codeg[50]=-38^409;
- codeg[51]=-70^417;
- codeg[52]=-14^425;
- codeg[53]=-14^433;
- codeg[54]=-94^441;
- codeg[55]=-102^449;
- codeg[56]=-118^457;
- codeg[57]=-54^465;
- codeg[58]=-126^473;
- codeg[59]=-94^481;
- codeg[60]=-14^489;
- codeg[61]=-86^497;
- codeg[62]=-70^505;
- codeg[63]=26^513;
- codeg[64]=82^521;
- codeg[65]=82^529;
- codeg[66]=2^537;
- codeg[67]=122^545;
- codeg[68]=106^553;
- codeg[69]=42^561;
- codeg[70]=98^569;
- codeg[71]=2^577;
- codeg[72]=82^585;
- codeg[73]=10^593;
- codeg[74]=26^601;
- codeg[75]=122^609;
- codeg[76]=50^617;
- codeg[77]=69^625;
- codeg[78]=77^633;
- codeg[79]=-20^641;
- codeg[80]=-90^649;
- codeg[81]=-118^657;
- codeg[82]=-62^665;
- codeg[83]=-107^673;
- codeg[84]=-103^681;
- codeg[85]=-36^689;
- codeg[86]=-94^697;
- codeg[87]=-102^705;
- codeg[88]=-118^713;
- codeg[89]=-54^721;
- codeg[90]=-126^729;
- codeg[91]=-43^737;
- codeg[92]=-35^745;
- codeg[93]=-100^753;
- codeg[94]=-91^761;
- codeg[95]=26^769;
- codeg[96]=82^777;
- codeg[97]=37^785;
- codeg[98]=41^793;
- codeg[99]=76^801;
- }
-
- BstrC(BSTR *bstr,UBYTE *buf)
- {
- UBYTE *str;
- LONG loop,counter;
-
- counter=0;
- str = (UBYTE*) BADDR(bstr);
- for(loop=(LONG)str[0]; loop--; ++counter)
- {
- buf[counter] = str[counter+1];
- }
- buf[counter]='\0';
- }
-
- STRPTR BstrOut(BSTR *bstr)
- {
- UBYTE buf[200];
- UBYTE buf2[200];
- BstrC(bstr,buf);
- strcpy(buf2,buf);
- Upper(buf2);
- return((char *)buf2);
- }
-
- int FindAssign(char *Path)
- {
- struct RootNode *rootnode;
- struct DosInfo *dosinfo;
- struct DeviceList *devicelist;
-
- rootnode = (struct RootNode*) DOSBase->dl_Root;
- dosinfo = (struct DosInfo*) BADDR(rootnode->rn_Info);
- devicelist = (struct DeviceList*) BADDR(dosinfo->di_DevInfo);
- while(devicelist->dl_Next)
- {
- if(!strncmp((STRPTR)BstrOut(devicelist->dl_Name),Path))
- {
- if(strcmp(Path,"RAM")==0) return(1);
- else if(devicelist->dl_Type!=0) return(1);
- }
- devicelist = (struct DeviceList*) BADDR(devicelist->dl_Next);
- }
- return(0);
- }
-
- void Intro()
- {
- sm(" p",0); sm(" ",1);
- sm("",1);
- sm(codea,1);
- sm(codeb,1);
- sm(codec,0);
- for(i=0; i<=2; i++)
- {
- sm(coded,1);
- sm(codee,1);
- Delay(5);
- sm(codef,1);
- sm(codeg,1);
- Delay(5);
- }
- sm(" p",0); sm(" ",1);
- }
-
- void Main_Sub()
- {
- int success;
-
- while(strcmp(CLI2,"ENDCLI")!=0 && strcmp(CLI2,"G")!=0)
- {
- sm("",1);
- sprintf(line,"%s> ",DIR);
- pm(line,CLI,190);
- if(CLI[0]=='.')
- {
- pu(&CLI[1],508);sm("",1); strcpy(CLI2,"");
- continue;
- }
- sr(CLI);
- if(strcmp(CLI,"")!=0)
- {
- Parse_Arg(CLI);
- sr(CMD); strcpy(CMD2,CMD);
- sr(EXP);
- strcpy(UEXP,EXP);
- Upper(CMD); Upper(UEXP);
- sprintf(CLI2,"%s %s",CMD,UEXP);
- sr(CLI2);
- NO=0;
- CAN=0;
- CONLY=0;
- NOT_Check();
- CAN_Check();
-
- Words(UEXP);
- for(i=1; i<=w; i++)
- {
- Word(UEXP,i);
- if(strcmp(wrd,">NIL:")==0 || strcmp(wrd,">")==0) {NO=1; i=w;}
- }
-
- Script_Check(CMD);
- if(SR==1)
- {
- sm("",1);
- sm("Script Files NOT allowed to be Executed!",1);
- NO=1;
- }
-
- A=0;
- DZ=0;
- RZ=0;
- COP=0;
- DEL=0;
- REN=0;
- CHD=0;
- LastPos(":",UEXP);
- EN=j;
-
- LastPos("/",CMD);
- if(j==0) LastPos(":",CMD);
- if(j!=0)
- {
- l=strlen(CMD);
- Right(CMD,l-j);
- if(strcmp(right,"CD")==0) CHD=1;
- }
- else if(strcmp(CMD,"CD")==0) CHD=1;
- if(strcmp(CMD,"/")==0) CHD=1;
-
- if(strcmp(CMD,"CD")==0 && strcmp(UEXP,"/")!=0 && strcmp(UEXP,"")!=0 && CAN==1 && EN==0)
- {
- Words(EXP);
- if(w>1) {Word(EXP,1); strcpy(line,wrd);}
- else strcpy(line,EXP);
- Right(DIRB,1);
- if(strcmp(right,":")==0) sprintf(TempDir,"%s%s",DIRB,line);
- else sprintf(TempDir,"%s/%s",DIRB,line);
- Dir_Check(TempDir);
- if(CD==1) Get_Dir(TempDir);
- else
- {
- sm("",1);
- sm("Directory Does NOT EXIST!",1);
- }
- }
-
- if(strcmp(CMD,"CD")==0 && strcmp(UEXP,"/")!=0 && strcmp(UEXP,"")!=0 && CAN==1 && EN!=0)
- {
- Words(EXP);
- if(w>1) {Word(EXP,1); strcpy(line,wrd);}
- else strcpy(line,EXP);
-
- Dir_Check(line);
- if(CD==1) Get_Dir(line);
- else
- {
- sm("",1);
- sm("Directory Does NOT EXIST!",1);
- }
- }
-
- if((strcmp(CMD,"CD")==0 && strcmp(UEXP,"/")==0 && CAN==1) || strcmp(CMD,"/")==0)
- {
- LastPos("/",DIRB);
- if(j==0) LastPos(":",DIRB);
- if(j!=0)
- {
- for(i=0; i<j; i++)
- {
- DIRB[i]=DIRB[i];
- }
- DIRB[i]='\0';
- Get_Dir(DIRB);
- }
- }
-
- if(strcmp(CMD,"DZ")==0 || strcmp(CMD,"DS")==0 || strcmp(CMD,"D")==0)
- {
- DZ=1;
- Get_Files();
- List_Files();
- Download_Files();
- }
-
- if(strcmp(CMD,"RZ")==0 || strcmp(CMD,"RS")==0 || strcmp(CMD,"U")==0)
- {
- RZ=1;
- gu(node,BB_NODEID);
- sprintf(line,"BBS:Node%s/PlayPen/",node);
- pu(line,ZMODEMRECEIVE);
- sm("",1);
- sprintf(line,"Upload(s) Moved.....BBS:Node%s/PlayPen",node);
- sm(line,1);
- fi=fopen("DOORS:SHELL/SHELL-CAN","r");
- if(fi!=0)
- {
- while(fgets(image,200,fi)!=NULL)
- {
- sr(image);
- LastPos("/",image);
- if(j==0) LastPos(":",image);
- if(j!=0)
- {
- l=strlen(image);
- Right(image,l-j);
- }
- else strcpy(right,image);
- sprintf(line,"BBS:Node%s/PlayPen/%s",node,right);
- File_Check(line);
- if(FI==1)
- {
- success = DeleteFile(line);
- sm("",1);
- sm("Nice Try...NOT!!!",1);
- sm("",1);
- sprintf(line,"File: %s DELETED",right);
- sm(line,1);
- }
- }
- fclose(fi);
- }
- }
-
- Right(CMD,6);
- if(strcmp(right,"DELETE")==0) DEL=1;
- if(DEL==1 && CAN==1 && NO==0 && strcmp(UEXP,"")!=0)
- {
- Words(UEXP);
- for(p=1; p<=w; p++)
- {
- Word(UEXP,p);
- LastPos(":",wrd);
- if(j!=0)
- {
- l=strlen(wrd);
- Left(wrd,l-j);
- Dir_Check(wrd);
- if(Ok==1) NO=1;
- }
- l=strlen(wrd);
- LastPos("/",wrd);
- if(j==0) LastPos(":",wrd);
- if(j!=0) Right(wrd,l-j);
- else strcpy(right,wrd);
-
- fi=fopen("DOORS:SHELL/SHELL-DEL_NOT","r");
- if(fi!=0)
- {
- while(fgets(image,200,fi)!=NULL)
- {
- sr(image); Upper(image);
- if(strcmp(right,image)==0) {NO=1; p=w;}
- }
- fclose(fi);
- }
- else {NO=1; p=w;}
- }
- if(NO==0)
- {
- strcpy(password,DELpassword);
- DEL_REN_Password_Check();
- Show();
- success = DeleteFile("RAM:SHELL");
- }
- }
-
- Right(CMD,6);
- if(strcmp(right,"RENAME")==0) REN=1;
- if(REN==1 && CAN==1 && NO==0 && strcmp(UEXP,"")!=0)
- {
- Word(EXP,1);
- Dir_Check(wrd);
- if(CD==1)
- {
- sm("",1);
- sm("Directories NOT Allowed to Be Renamed...",1);
- NO=1;
- }
- if(Ok==1) NO=1;
-
- Words(UEXP);
- for(p=1; p<=w; p++)
- {
- Word(UEXP,p);
- LastPos(":",wrd);
- if(j!=0)
- {
- l=strlen(wrd);
- Left(wrd,l-j);
- Dir_Check(wrd);
- if(Ok==1) NO=1;
- }
- l=strlen(wrd);
- LastPos("/",wrd);
- if(j==0) LastPos(":",wrd);
- if(j!=0) Right(wrd,l-j);
- else strcpy(right,wrd);
-
- fi=fopen("DOORS:SHELL/SHELL-REN_NOT","r");
- if(fi!=0)
- {
- while(fgets(image,200,fi)!=NULL)
- {
- sr(image); Upper(image);
- if(strcmp(right,image)==0) {NO=1; p=w;}
- }
- fclose(fi);
- }
- else {NO=1; p=w;}
- }
- if(NO==0)
- {
- strcpy(password,RENpassword);
- DEL_REN_Password_Check();
- Show();
- success = DeleteFile("RAM:SHELL");
- }
- }
-
- Right(CMD,4);
- if(strcmp(right,"COPY")==0) COP=1;
- if(COP==1 && CAN==1 && NO==0 && strcmp(UEXP,"")!=0)
- {
- Word(EXP,1);
- Dir_Check(wrd);
- if(CD==1)
- {
- sm("",1);
- sm("Directories NOT Allowed to Be Copied...",1);
- NO=1;
- }
- if(Ok==1) NO=1;
-
- Words(UEXP);
- for(p=1; p<=w; p++)
- {
- Word(UEXP,p);
- LastPos(":",wrd);
- if(j!=0)
- {
- l=strlen(wrd);
- Left(wrd,l-j);
- Dir_Check(wrd);
- if(Ok==1) NO=1;
- }
- l=strlen(wrd);
- LastPos("/",wrd);
- if(j==0) LastPos(":",wrd);
- if(j!=0) Right(wrd,l-j);
- else strcpy(right,wrd);
-
- fi=fopen("DOORS:SHELL/SHELL-COP_NOT","r");
- if(fi!=0)
- {
- while(fgets(image,200,fi)!=NULL)
- {
- sr(image); Upper(image);
- if(strcmp(right,image)==0) {NO=1; p=w;}
- }
- fclose(fi);
- }
- else {NO=1; p=w;}
- }
- if(NO==0)
- {
- Change_Dir();
- Show();
- success = DeleteFile("RAM:SHELL");
- }
- }
-
-
- if(NO==0 && DZ==0 && RZ==0 && REN==0 && DEL==0 && COP==0 && CHD==0 && strcmp(CLI2,"ENDCLI")!=0 && strcmp(CLI2,"G")!=0)
- {
- LastPos(":",CMD);
- if(j==0)
- {
- Right(DIRB,1);
- if(strcmp(right,":")==0) sprintf(line,"%s%s",DIRB,CMD);
- else sprintf(line,"%s/%s",DIRB,CMD);
- }
- else strcpy(line,CLI);
- File_Check(line);
- if(FI==1 && CAN==1 & CONLY==0)
- {
- Change_Dir();
- Show();
- success = DeleteFile("RAM:SHELL");
- A=1;
- }
- sprintf(line,"C:%s",CMD);
- File_Check(line);
- if(FI==1 && A==0 && CAN==1 && CONLY==1)
- {
- Change_Dir();
- Show();
- success = DeleteFile("RAM:SHELL");
- A=1;
- }
- if(A==0)
- {
- LastPos(":",CMD);
- if(j==0)
- {
- Right(DIRB,1);
- if(strcmp(right,":")==0) sprintf(TempDir,"%s%s",DIRB,CMD);
- else sprintf(TempDir,"%s/%s",DIRB,CMD);
- Dir_Check(TempDir);
- if(CD==1) Get_Dir(TempDir);
- }
- else
- {
- Dir_Check(CMD);
- if(CD==1) Get_Dir(CMD);
- }
- }
- }
- }
- }
- if(strcmp(CLI2,"G")==0)
- {
- sm("",1);
- sm("Click...",1);
- }
- sm("",1);
- return;
- }
-
-